本文介绍如何从OpenStreetMap获取地图,并转换成符合The ONE仿真器使用的wkt格式。

1. 从OpenStreetMap获取地图

打开OpenStreetMap官网,相应操作如下图:

OpenStreetMap

点击Export后,跳转到另一个页面,理论上是开始下载osm数据,但我试了几次,一直都没反应。没关系,把网址复制下来,用wget工具下载,如下(-O 后面是输出的文件名):

wget -O toulouse.osm "http://api.openstreetmap.org/api/0.6/map?bbox=1.3637,43.5464,1.5209,43.6366"

这样就得到osm数据了。

2. 转换成wkt格式

osm数据是xml格式,已有人写了一个工具叫osm2wkt,可以将osm转换成wkt格式。点击这里下载jar包,运行下面命令,即可完成转换:

java -jar ./osm2wkt.jar toulouse.osm

osm2wkt使用方法如下:

generate+cleanup from osm: >> java -jar ./osm2wkt.jar mapfile.osm
cleanup from wkt         : >> java -jar ./osm2wkt.jar mapfile.wkt
options: 
    -o outputfile - write output to given file
    -a - append to output file
    -t X Y - translate map by x=X and y=Y meters

PS:实际上,我没转换成功,osm2wkt先提示缺少</img>标记,加上去之后,还提示只处理osm格式而不能是html格式。

3. 讨论

OpenStreetMap相当于是地图的元数据,如果过滤出自已想要的数据,这才是难点。比如我想过滤出公共交通的行走路线,还有我如何将一个城市抽象成一个点?请指点!

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-03-27 13:55

results matching ""

    No results matching ""